package com.zxjbyte.yiyi.framework.oss.storage.s3;

import com.zxjbyte.yiyi.framework.oss.storage.OssConfig;
import lombok.Data;

import javax.validation.constraints.NotBlank;

/**
 * @Author zhangxingjia
 * @Date 2023/5/24 18:55
 * @Version: 1.0
 */
@Data
public class S3OssConfig implements OssConfig {

    /**
     * 存储空间名称(桶)：存储空间是用来管理所存储文件的单元
     */
    @NotBlank(message = "bucket不能为空")
    private String bucketName;

    /**
     * OSS的数据中心所在的地域
     * 如果使用的是腾讯云必须要有
     */
    private String region;

    /**
     * OSS对外服务的访问域名（服务域名）
     * 京东云：https://docs.jdcloud.com/cn/object-storage-service/oss-endpont-list
     * 七牛云：https://developer.qiniu.com/kodo/4088/s3-access-domainname
     * 阿里云：https://help.aliyun.com/document_detail/31837.html
     * 腾讯云：https://cloud.tencent.com/document/product/436/6224
     * 华为云：https://support.huaweicloud.com/productdesc-obs/obs_03_0152.html
     */
    @NotBlank(message = "endpoint不能为空")
    private String endpoint;

    /**
     * 自定义域名：
     * 京东云：https://docs.jdcloud.com/cn/object-storage-service/set-custom-domain-name-2
     * 七牛云：https://developer.qiniu.com/kodo/8556/set-the-custom-source-domain-name
     * 阿里云：https://help.aliyun.com/document_detail/31836.html?spm=a2c4g.31902.0.i0
     * 腾讯云：https://cloud.tencent.com/document/product/436/11142
     * 华为云: https://support.huaweicloud.com/ugobs-obs/obs_41_0038.html
     */
    private String customDomain;

    /**
     * Access key就像用户ID，可以唯一标识你的账户
     */
    @NotBlank(message = "Access key不能为空")
    private String accessKey;

    /**
     * Secret Key是你账户的密码
     */
    @NotBlank(message = "Secret Key不能为空")
    private String secretKey;
}
